/*
 * IRRemote.h
 *
 *  Created on: Dec 6, 2024
 *      Author: admire
 */

#ifndef IRREMOTE_H_
#define IRREMOTE_H_

#include "main.h"

// NEC协议相关的一些时间参数宏定义（单位为us，具体根据实际调整）
#define NEC_HEADER_MIN 40	// 引导码高电平最小时长40*100uS
#define NEC_HEADER_MAX 50  	// 引导码高电平最大时长50*100uS
#define NEC_BIT_1_MIN 14  	// 逻辑1低电平最小时长14*100uS
#define NEC_BIT_1_MAX 18  	// 逻辑1低电平最大时长18*100uS
#define NEC_BIT_0_MIN 3  	// 逻辑0低电平最小时长3*100uS
#define NEC_BIT_0_MAX 7  	// 逻辑0低电平最大时长7*100uS
#define NEC_BIT_PERIOD_MIN 4000  // 一位数据周期最小时长
#define NEC_BIT_PERIOD_MAX 6000  // 一位数据周期最大时长

void delay_us(uint16_t time);
void infrared_receive(void);

#endif /* IRREMOTE_H_ */
